package main

import (
	"fmt"
	"github.com/spf13/viper"
	"go-test/config"
	"go-test/controller"
	"os"
)

func main() {
	// 初始化配置
	InitConfig()

	// 获取连接
	db := config.InitDB()

	// 关闭数据库连接，这里的defer是延迟函数，会在main函数结束时关闭
	defer db.Close()

	// 测试数据库连接，连接出错会下面的语句会打印错误
	//fmt.Println(db.DB().Ping())

	// 把连接传递给路由处理
	router := controller.InitRouter(db)

	// 项目启动端口
	err := router.Run(":8081")
	if err != nil {
		fmt.Println(err)
		return
	}
}

func InitConfig() {
	workDir, _ := os.Getwd()
	// 读取的文件名
	viper.SetConfigName("application")
	// 读取的文件类型
	viper.SetConfigType("yml")
	// 读取的路径
	viper.AddConfigPath(workDir + "/config")

	err := viper.ReadInConfig()
	if err != nil {
		panic("")
	}
}
